package com.yiguantong.police.ui.utils;

import android.content.Context;
import android.content.SharedPreferences;

/**
 * Created by xw-Android on 2017/1/10.
 */

public class SharedPreferencesUtil {

    public static SharedPreferences sp;
    public static SharedPreferences.Editor editor;
    //表名
    public static final String INFOFILE = "andwuye_sp";


    /*=========================存储其他信息==============================*/

    /**
     * 存储信息(String)
     *
     * @param context 联系上下文
     * @param key     Key值
     * @param value   存储的数据
     * @return
     */
    public static boolean putString(Context context, String key, String value) {
        initSPFile(context, INFOFILE);
        editor = sp.edit();
        editor.putString(key, value);
        return editor.commit();
    }

    /**
     * 获取信息(String)
     *
     * @param context      联系上下文
     * @param key          Key值
     * @param defaultValue 获取的数据
     * @return
     */
    public static String getString(Context context, String key, String defaultValue) {
        initSPFile(context, INFOFILE);
        return sp.getString(key, defaultValue);
    }

    /**
     * 存储信息(Int)
     *
     * @param context 联系上下文
     * @param key     Key值
     * @param value   获取的数据
     * @return
     */
    public static boolean putInt(Context context, String key, Integer value) {
        initSPFile(context, INFOFILE);
        editor = sp.edit();
        editor.putInt(key, value);
        return editor.commit();
    }

    /**
     * 获取信息(Int)
     *
     * @param context      联系上下文
     * @param key          Key值
     * @param defaultValue 获取的数据
     * @return
     */
    public static int getInt(Context context, String key, Integer defaultValue) {
        initSPFile(context, INFOFILE);
        return sp.getInt(key, defaultValue);
    }

    /**
     * 存储信息(boolean)
     *
     * @param context 联系上下文
     * @param key     Key值
     * @param value   获取的数据
     * @return
     */
    public static boolean putBoolean(Context context, String key, boolean value) {
        initSPFile(context, INFOFILE);
        editor = sp.edit();
        editor.putBoolean(key, value);
        return editor.commit();
    }

    /**
     * 获取信息(boolean)
     *
     * @param context      联系上下文
     * @param key          Key值
     * @param defaultValue 获取的数据
     * @return
     */
    public static boolean getBoolean(Context context, String key, boolean defaultValue) {
        initSPFile(context, INFOFILE);
        return sp.getBoolean(key, defaultValue);
    }

    /**
     * 删除指定的Key
     *
     * @param context 联系上下文
     * @param key     Key值
     */
    public static void removeKey(Context context, String key) {
        initSPFile(context, INFOFILE);
        editor = sp.edit();
        editor.remove(key);
        editor.commit();
    }

    /**
     * 清空 INFOFILE 表数据
     *
     * @param context 联系上下文
     */
    public static void dealClean(Context context) {
        initSPFile(context, INFOFILE);
        editor = sp.edit();
        editor.clear();
        editor.commit();
    }

    /**
     * 给SP存储指定表文件
     *
     * @param context 联系上下文
     * @param file    表文件
     */
    private static void initSPFile(Context context, String file) {
        sp = context.getSharedPreferences(file, Context.MODE_PRIVATE);
    }

    /**
     * 获取信息(String)
     *
     * @param context      联系上下文
     * @param key          Key值
     * @param defaultValue 获取的数据
     * @return
     */
    public static String getInfoString(Context context, String key, String defaultValue) {
        initSPFile(context, INFOFILE);
        return sp.getString(key, defaultValue);
    }
    /**
     * 存储信息(String)
     *
     * @param context 联系上下文
     * @param key     Key值
     * @param value   存储的数据
     * @return
     */
    public static boolean putInfoString(Context context, String key, String value) {
        initSPFile(context, INFOFILE);
        editor = sp.edit();
        editor.putString(key, value);
        return editor.commit();
    }
}
